package br.uvv.sao.rn;

import java.io.Serializable;
import java.util.List;

import br.uvv.sao.dao.PalavraChaveDAO;
import br.uvv.sao.domain.PalavraChave;
import br.uvv.sao.util.DAOException;
import br.uvv.sao.util.RNException;

public class PalavraChaveRN implements Serializable {
	
	private static final long serialVersionUID = -3269212500907064308L;
	
	private PalavraChaveDAO palavraChaveDAO = new PalavraChaveDAO();
	
	public void salvar(PalavraChave palavraChaveInstance) throws RNException {
		try {
			this.palavraChaveDAO.salvar(palavraChaveInstance);
		} catch (DAOException e) {
			throw new RNException(e);
		}
	}
	
	public void excluir(PalavraChave palavraChaveInstance) throws RNException {
		try {
			this.palavraChaveDAO.excluir(palavraChaveInstance);
		} catch (DAOException e) {
			throw new RNException(e);
		}
	}
	
	public List<PalavraChave> listar() throws RNException {
		try {
			return this.palavraChaveDAO.listar();
		} catch (DAOException e) {
			throw new RNException(e);
		}
	}
	
	public Boolean verificarNome(String nome, PalavraChave palavraChaveInstancia, Boolean selecionado) throws RNException{
		try{
			if (palavraChaveInstancia.getId()!=null)
				selecionado = true;
		} catch (Exception e){
			selecionado = false;
		}
		Integer retorno;
		try {
			retorno = palavraChaveDAO.findByNomeCount(nome);
		} catch (DAOException e) {
			throw new RNException(e);
		}
		if (selecionado){
			if (retorno>1)
				return false;
			else
				return true;
		}
		if (retorno>0){
			return false;
		}
		return true;
	}
}
